Antennas, such as radar antennas, are subject to receiving both desired and undesired signals, where the latter may degrade the performance of the system of which the antenna is a part. An antenna suitable for interference cancellation may be treated as a combination of many individual antenna elements, each antenna element receiving a particular combination of wanted and unwanted signals. In fact, it is known to sum the signals of all antenna elements, giving appropriate weight to appropriate elements. Furthermore, it has been demonstrated that if the appropriate statistics are gathered, it is possible to determine the optimum weights to be applied to particular signals in order to optimize reception of the desired signals by nulling out the undesired signals. A problem arises, however, in the implementation of any weighting system, since it will require substantial computation to determine the best weights unless the number of antenna elements is a very small number.
More particularly, assume a system where an antenna has N antenna elements Each antenna element, as for example, antenna element j, receives a signal which may comprise a desired signal and/or any number of undesired signals in some linear combination, where the total unwanted signal on antenna element j is p.sub.j. The collection of undesired signals o all the N antenna elements forms a vector P. Of course, it should be appreciated that the order in which each antenna element is numbered is completely arbitrary. However, once such an order has been established it should be consistently followed since it determines the order of signals in the vector P.
Naturally, P and all its components p.sub.j are functions of time. Samples of p.sub.j are obtained from time to time, with the signals on all the antenna elements sampled at the same instant. If the n-th sample on the j-th antenna element is p.sub.j (n) and the collection of all the samples at the same instant is P(n), then P(n) has N components and the component which originated as a sample from antenna element-j is the j-th component of P(n). Because of the way signals on antennas are often sampled, each of the components is generally a complex number, having a real part and an imaginary part. If n is the number of the most recent sample available, then P(n) is the current vector of observations of unwanted signals.
In many mathematical treatments of the behavior of arrays of antenna elements it is useful to know a certain N.times.N matrix called a `correlation` matrix R, expressed as: R=E(P(n).times.P.sup.t (n)), where E is understood to mean `expectation of`, and where the superscript t stands for the simultaneous operations of transposing a vector or matrix and conjugating all the complex numbers appearing as entries in the vector or matrix. In practice, an approximation to this expectation is measured using an average of P(n).times.P.sup.t (n), the average being taken over the current observation vector and those which have been seen up to the present.
To explain further, if all the previous observation vectors were collected together, i.e., P(n-3),P(n-2),P(n-1), which might be a collection extending indefinitely far into the past, but not including the present observation vector, one could, from these samples, determine the `previous` correlation matrix R(n-1). Also, the current R(n) can be determined if the current observation vector, P(n), were appended to this collection of observation vectors. Furthermore, still another more up-to-date estimate of matrix R may be computed with each new observation vector appended to the last updated matrix R(n-1).
In the averaging process it is generally desired to weight the most recent observations somewhat more heavily in the statistic than the older observations. This may be accomplished by using a "forgetting factor". A forgetting factor is a number smaller than 1.0 (usually only slightly less than 1.0) which may be designated as .alpha.. Therefore, the iteration is R(n)=.alpha..sup.2 R(n-1)+P(n).times.P.sup.t (n). Since this is an iteration, it will be understood that R(n-1)=.alpha..sup.2 R(n-2)+P(n-1).times.P.sup.t (n-1), and so on. Therefore R(n) is influenced by all the previous observation vectors, to some extent, but because of the forgetting factor .alpha., the influence of the older observation vectors is more and more diminished. In carrying out this iteration, it may be assumed that at some instant long ago, R(0) was a matrix of all zeros. However, since .alpha. is less than 1.0, even if R(0) were not a matrix of all zeros, after a long enough time, the current correlation matrix R(n) will eventually no longer be significantly affected by the initial state R(0).
The same information which is contained in R(n) can be carried by an N.times.N lower triangular matrix, where N is the number of elements, and n is the current data set. While several forms of lower triangular matrix are operable within the present invention, for purposes of expediency, discussion here is limited to operation of the invention with respect to a particular N.times.N lower triangular matrix L commonly referred to as the Cholesky factor. Matrix L is determined by processing the samples which have so far been collected, being updated as each sample is collected. Therefore L(n) will be understood to refer to the Cholesky factor which was computed from samples up to and including the current observation vector P(n). It will be appreciated by those skilled in the art that the Cholesky factor must observe the following relationship with L(n): R(n)=L(n).times.L.sup.t (n). Also, the entries along the diagonal of the matrix L(n) must be real numbers.
To explain further, if all the previous observation vectors were collected together, i.e., P(n-3),P(n-2),P(n-1), which might be a collection extending indefinitely far into the past, but not including the present observation vector, the `previous` Cholesky factor L(n-1) would be known. If to this collection of observation vectors, the current observation vector, P(n), were appended, the current Cholesky factor L(n) could be determined. Furthermore, the current Cholesky factor can be determined using only P(n) and L(n-1), whereby each time a new observation vector P(n) is received its information is folded into the most recent L matrix (which now has become matrix L(n-1)) to create still another, more up-to-date Cholesky factor.